﻿using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Web;

namespace baroIstatistik.Class
{
	public class kararraporlari
	{
        public decimal toplam_karar;
        public decimal uniq;
        public decimal yuzde;
        public string baslik;
        public string title;

        public kararraporlari()
        {
            SqlConnection sqlcon = connection.baglanti;
            SqlCommand sqlcmd = new SqlCommand("select Count(*) from karar ", sqlcon);
            sqlcon.Open();

            toplam_karar = Convert.ToDecimal(sqlcmd.ExecuteScalar());

            sqlcon.Close();        
                
        }


        public static List<kararraporlari> yillaradagilim()
        {
            List<kararraporlari> brp = new List<kararraporlari>();

            SqlConnection con = connection.baglanti;
            SqlCommand cmd = new SqlCommand("select COUNT(*) as miktar,dosyayili as yil from karar   group by dosyayili ", con);
            con.Open();
            SqlDataReader sdr = cmd.ExecuteReader();
            while (sdr.Read())
            {
                kararraporlari b = new kararraporlari();
                b.uniq = Convert.ToDecimal(sdr["miktar"]);
                b.yuzde = ((b.uniq / b.toplam_karar) * 100);
                b.baslik = sdr["yil"].ToString();




                brp.Add(b);
            }
            con.Close();

            return brp;

        }

        public static List<kararraporlari> kabuledendagilim()
        {
            List<kararraporlari> brp = new List<kararraporlari>();

            SqlConnection con = connection.baglanti;
            SqlCommand cmd = new SqlCommand("select COUNT(*) as miktar,kimkabuletmis  from karar   group by kimkabuletmis ", con);
            con.Open();
            SqlDataReader sdr = cmd.ExecuteReader();
            while (sdr.Read())
            {
                kararraporlari b = new kararraporlari();
                b.uniq = Convert.ToDecimal(sdr["miktar"]);
                b.yuzde = ((b.uniq / b.toplam_karar) * 100);
                b.baslik = sdr["kimkabuletmis"].ToString();




                brp.Add(b);
            }
            con.Close();

            return brp;

        }

        public static List<kararraporlari> aynikisitedbirdagilim()
        {
            List<kararraporlari> brp = new List<kararraporlari>();

            SqlConnection con = connection.baglanti;
            SqlCommand cmd = new SqlCommand("select COUNT(*) as miktar,aynikisiyetedbirvarmi  from karar   where aynikisiyetedbirvarmi=1 or aynikisiyetedbirvarmi=0 group by aynikisiyetedbirvarmi ", con);
            con.Open();
            SqlDataReader sdr = cmd.ExecuteReader();
            while (sdr.Read())
            {
                kararraporlari b = new kararraporlari();
                b.uniq = Convert.ToDecimal(sdr["miktar"]);
                b.yuzde = ((b.uniq / b.toplam_karar) * 100);
                b.baslik = sdr["aynikisiyetedbirvarmi"].ToString();




                brp.Add(b);
            }
            con.Close();

            return brp;

        }

        public static List<kararraporlari> baskadestekdagilim()
        {
            List<kararraporlari> brp = new List<kararraporlari>();

            SqlConnection con = connection.baglanti;
            SqlCommand cmd = new SqlCommand("select COUNT(*) as miktar,baskadestekvarmi  from karar   where baskadestekvarmi=1 or baskadestekvarmi=0 group by baskadestekvarmi ", con);
            con.Open();
            SqlDataReader sdr = cmd.ExecuteReader();
            while (sdr.Read())
            {
                kararraporlari b = new kararraporlari();
                b.uniq = Convert.ToDecimal(sdr["miktar"]);
                b.yuzde = ((b.uniq / b.toplam_karar) * 100);
                b.baslik = sdr["baskadestekvarmi"].ToString();




                brp.Add(b);
            }
            con.Close();

            return brp;

        }

        public static List<kararraporlari> destekkurumdagilim()
        {
            List<kararraporlari> brp = new List<kararraporlari>();

            SqlConnection con = connection.baglanti;
            SqlCommand cmd = new SqlCommand("select COUNT(*) as miktar,destekkurum  from karar   group by destekkurum ", con);
            con.Open();
            SqlDataReader sdr = cmd.ExecuteReader();
            while (sdr.Read())
            {
                kararraporlari b = new kararraporlari();
                b.uniq = Convert.ToDecimal(sdr["miktar"]);
                b.yuzde = ((b.uniq / b.toplam_karar) * 100);
                b.baslik = sdr["destekkurum"].ToString();




                brp.Add(b);
            }
            con.Close();

            return brp;

        }

        public static List<kararraporlari> tedbirihlalidagilim()
        {
            List<kararraporlari> brp = new List<kararraporlari>();





            SqlConnection con = connection.baglanti;
            SqlCommand cmd = new SqlCommand("select COUNT(*) as miktar,tedbirihlali  from karar   where tedbirihlali=1 or tedbirihlali=0 group by tedbirihlali ", con);
            con.Open();
            SqlDataReader sdr = cmd.ExecuteReader();
            while (sdr.Read())
            {
                kararraporlari b = new kararraporlari();
                b.uniq = Convert.ToDecimal(sdr["miktar"]);
                b.yuzde = ((b.uniq / b.toplam_karar) * 100);
                b.baslik = sdr["tedbirihlali"].ToString();




                brp.Add(b);
            }
            con.Close();

            return brp;

        }

        public static List<kararraporlari> mahkemetalepkarsilamadagilim()
        {
            List<kararraporlari> brp = new List<kararraporlari>();





            SqlConnection con = connection.baglanti;
            SqlCommand cmd = new SqlCommand("select COUNT(*) as miktar,mahkemetalebidesteklermi  from karar   where mahkemetalebidesteklermi=1 or mahkemetalebidesteklermi=0 group by mahkemetalebidesteklermi ", con);
            con.Open();
            SqlDataReader sdr = cmd.ExecuteReader();
            while (sdr.Read())
            {
                kararraporlari b = new kararraporlari();
                b.uniq = Convert.ToDecimal(sdr["miktar"]);
                b.yuzde = ((b.uniq / b.toplam_karar) * 100);
                b.baslik = sdr["mahkemetalebidesteklermi"].ToString();




                brp.Add(b);
            }
            con.Close();

            return brp;

        }

        public static List<kararraporlari> zorlamahapisdagilim()
        {
            List<kararraporlari> brp = new List<kararraporlari>();



            SqlConnection con = connection.baglanti;

            SqlCommand sqlcmd = new SqlCommand("select Count(*) from karar ", con);
            con.Open();

           decimal toplam_karar2 = Convert.ToDecimal(sqlcmd.ExecuteScalar());

            con.Close();  



            SqlCommand cmd = new SqlCommand("select COUNT(*) as miktar,zorlamahapisivarmi  from karar   where tedbirihlali=1 and (zorlamahapisivarmi=1 or zorlamahapisivarmi=0) group by zorlamahapisivarmi ", con);
            con.Open();
            SqlDataReader sdr = cmd.ExecuteReader();
            while (sdr.Read())
            {
                kararraporlari b = new kararraporlari();
                b.uniq = Convert.ToDecimal(sdr["miktar"]);
                b.yuzde = ((b.uniq / toplam_karar2) * 100);

                switch (sdr["zorlamahapisivarmi"].ToString())
                {
                    case "0":
                         b.baslik = "Hapis Verilmiş";
                        break;
                        case "1":
                        b.baslik = "Hapis Verilmemiş";
                        break;
                    
                }



                brp.Add(b);
            }
            con.Close();

            return brp;

        }

        public static List<kararraporlari> kararverilentedbirsuresidagilim()
        {
            List<kararraporlari> brp = new List<kararraporlari>();

            SqlConnection con = connection.baglanti;
            SqlCommand cmd = new SqlCommand("select COUNT(*) as miktar,kararverilentedbirsuresi  from karar  where kararverilentedbirsuresi!='null' group by kararverilentedbirsuresi ", con);
            con.Open();
            SqlDataReader sdr = cmd.ExecuteReader();
            while (sdr.Read())
            {
                kararraporlari b = new kararraporlari();
                b.uniq = Convert.ToDecimal(sdr["miktar"]);
                b.yuzde = ((b.uniq / b.toplam_karar) * 100);
                b.baslik = sdr["kararverilentedbirsuresi"].ToString();




                brp.Add(b);
            }
            con.Close();

            return brp;

        }

        public static List<kararraporlari> siddetturudagilimi()
        {
            List<kararraporlari> brp = new List<kararraporlari>();
            string[] sorgular = { "fiziksel", "cinsel", "psikolojik", "ekonomil", };
            string[] sdler = { "Fiziksel Şiddet", "Cinsel Şiddet", "Psikolojik Şiddet", "Ekonomik Şiddet" };
            for (int i = 0; i < sorgular.Length; i++)
            {
                kararraporlari b = new kararraporlari();
                b = chehcksogru(sorgular[i], sdler[i]);

                brp.Add(b);
            }

            return brp;


        }

        public static List<kararraporlari> koruyucutalepedilentedbirturu()
        {
            List<kararraporlari> brp = new List<kararraporlari>();
            string[] sorgular = { "m4abend", "m4bbend", "m4cbend", "m4chbend", };
            string[] sdler = { "Koruyucu Tedbirler 4.Madde a Bendi ", "Koruyucu Tedbirler 4.Madde b Bendi", "Koruyucu Tedbirler 4.Madde c Bendi", "Koruyucu Tedbirler 4.Madde ç Bendi" };
            for (int i = 0; i < sorgular.Length; i++)
            {
                kararraporlari b = new kararraporlari();
                b = chehcksogru(sorgular[i], sdler[i]);

                brp.Add(b);
            }

            return brp;


        }

        public static List<kararraporlari> onleyicitalepedilentedbirturu()
        {
            List<kararraporlari> brp = new List<kararraporlari>();
            string[] sorgular = { "m51abend", "m51bbend", "m51cbend", "m51chbend", "m51dbend", "m51ebend", "m51fbend", "m51gbend", "m51g_bend", "m51hbend", "m51ibend", "m52abend", "m53abend", "m54abend", "m86abend", "m87abend" };
            string[] sdler = { "Koruyucu Tedbirler 5-1.Madde a Bendi ", "Koruyucu Tedbirler 5-1.Madde b Bendi", "Koruyucu Tedbirler 5-1.Madde c Bendi", "Koruyucu Tedbirler 5-1.Madde ç Bendi", "Koruyucu Tedbirler 5-1.Madde d Bendi", "Koruyucu Tedbirler 5-1.Madde e Bendi", "Koruyucu Tedbirler 5-1.Madde f Bendi", "Koruyucu Tedbirler 5-1.Madde g Bendi", "Koruyucu Tedbirler 5-1.Madde ğ Bendi", "Koruyucu Tedbirler 5-1.Madde h Bendi", "Koruyucu Tedbirler 5-1.Madde ı Bendi", "Koruyucu Tedbirler 5-2.Madde  Bendi", "Koruyucu Tedbirler 5-3.Madde i", "Koruyucu Tedbirler 5-4.Madde ", "Koruyucu Tedbirler 8-6.Madde ", "Koruyucu Tedbirler 8-7.Madde " };
            for (int i = 0; i < sorgular.Length; i++)
            {
                kararraporlari b = new kararraporlari();
                b = chehcksogru(sorgular[i], sdler[i]);

                brp.Add(b);
            }

            return brp;


        }

        public static List<kararraporlari> mkoruyucutalepedilentedbirturu()
        {
            List<kararraporlari> brp = new List<kararraporlari>();
            string[] sorgular = { "km4abend", "km4bbend", "km4cbend", "km4chbend", };
            string[] sdler = { "Koruyucu Tedbirler 4.Madde a Bendi ", "Koruyucu Tedbirler 4.Madde b Bendi", "Koruyucu Tedbirler 4.Madde c Bendi", "Koruyucu Tedbirler 4.Madde ç Bendi" };
            for (int i = 0; i < sorgular.Length; i++)
            {
                kararraporlari b = new kararraporlari();
                b = chehcksogru(sorgular[i], sdler[i]);

                brp.Add(b);
            }

            return brp;


        }

        public static List<kararraporlari> monleyicitalepedilentedbirturu()
        {
            List<kararraporlari> brp = new List<kararraporlari>();
            string[] sorgular = { "km51abend", "km51bbend", "km51cbend", "km51chbend", "km51dbend", "km51ebend", "km51fbend", "km51gbend", "km51g_bend", "km51hbend", "km51ibend", "km52abend", "km53abend", "km54abend", "km86abend", "km87abend" };
            string[] sdler = { "Koruyucu Tedbirler 5-1.Madde a Bendi ", "Koruyucu Tedbirler 5-1.Madde b Bendi", "Koruyucu Tedbirler 5-1.Madde c Bendi", "Koruyucu Tedbirler 5-1.Madde ç Bendi", "Koruyucu Tedbirler 5-1.Madde d Bendi", "Koruyucu Tedbirler 5-1.Madde e Bendi", "Koruyucu Tedbirler 5-1.Madde f Bendi", "Koruyucu Tedbirler 5-1.Madde g Bendi", "Koruyucu Tedbirler 5-1.Madde ğ Bendi", "Koruyucu Tedbirler 5-1.Madde h Bendi", "Koruyucu Tedbirler 5-1.Madde ı Bendi", "Koruyucu Tedbirler 5-2.Madde  Bendi", "Koruyucu Tedbirler 5-3.Madde i", "Koruyucu Tedbirler 5-4.Madde ", "Koruyucu Tedbirler 8-6.Madde ", "Koruyucu Tedbirler 8-7.Madde " };
            for (int i = 0; i < sorgular.Length; i++)
            {
                kararraporlari b = new kararraporlari();
                b = chehcksogru(sorgular[i], sdler[i]);

                brp.Add(b);
            }

            return brp;


        }

        public static List<kararraporlari> redmkoruyucutalepedilentedbirturu()
        {
            List<kararraporlari> brp = new List<kararraporlari>();
            string[] sorgular = { "r4a", "r4b", "r4c", "r4ch" };
            string[] sdler = { "Koruyucu Tedbirler 4.Madde a Bendi ", "Koruyucu Tedbirler 4.Madde b Bendi", "Koruyucu Tedbirler 4.Madde c Bendi", "Koruyucu Tedbirler 4.Madde ç Bendi" };
            for (int i = 0; i < sorgular.Length; i++)
            {
                kararraporlari b = new kararraporlari();
                b = chehcksogru(sorgular[i], sdler[i]);

                brp.Add(b);
            }

            return brp;


        }

        public static List<kararraporlari> redmonleyicitalepedilentedbirturu()
        {
            List<kararraporlari> brp = new List<kararraporlari>();
            string[] sorgular = { "r51a", "r51b", "r51c", "r51ch", "r51d", "r51e", "r51f", "r51g", "r51g_", "r51h", "r51i", "r52", "r53", "r54", "r86", "r87" };
            string[] sdler = { "Koruyucu Tedbirler 5-1.Madde a Bendi ", "Koruyucu Tedbirler 5-1.Madde b Bendi", "Koruyucu Tedbirler 5-1.Madde c Bendi", "Koruyucu Tedbirler 5-1.Madde ç Bendi", "Koruyucu Tedbirler 5-1.Madde d Bendi", "Koruyucu Tedbirler 5-1.Madde e Bendi", "Koruyucu Tedbirler 5-1.Madde f Bendi", "Koruyucu Tedbirler 5-1.Madde g Bendi", "Koruyucu Tedbirler 5-1.Madde ğ Bendi", "Koruyucu Tedbirler 5-1.Madde h Bendi", "Koruyucu Tedbirler 5-1.Madde ı Bendi", "Koruyucu Tedbirler 5-2.Madde  Bendi", "Koruyucu Tedbirler 5-3.Madde i", "Koruyucu Tedbirler 5-4.Madde ", "Koruyucu Tedbirler 8-6.Madde ", "Koruyucu Tedbirler 8-7.Madde " };
            for (int i = 0; i < sorgular.Length; i++)
            {
                kararraporlari b = new kararraporlari();
                b = chehcksogru(sorgular[i], sdler[i]);

                brp.Add(b);
            }

            return brp;


        }

        public static List<kararraporlari> redgerekcesidagilim()
        {
            List<kararraporlari> brp = new List<kararraporlari>();
            string[] sorgular = { "redgerekcesi1", "redgerekcesi1", "redgerekcesi1", "redgerekcesi1" };
            string[] sdler = { "Usul ve Yasaya Uyulmadığından", "Delil Yetersizliğinden", "Yargılamayı Gerektirdiğinden", "Gerekçesiz Red" };
            for (int i = 0; i < sorgular.Length; i++)
            {
                kararraporlari b = new kararraporlari();
                b = chehcksogru(sorgular[i], sdler[i]);

                brp.Add(b);
            }

            return brp;


        }

        public static List<kararraporlari> destekturudagilimi()
        {
            List<kararraporlari> brp = new List<kararraporlari>();
            string[] sorgular = { "malidest", "psikolojik2", "siginma", "isbulma", "kres", "diger", };
            string[] sdler = { "Mali Destek Sağlama", "Psikolojik Destek", "Sığınma yeri", "İş Bulma Meslek Yardımı", "Kreş Desteği", "Kreş Desteği" };
            for (int i = 0; i < sorgular.Length; i++)
            {
                kararraporlari b = new kararraporlari();
                b = chehcksogru(sorgular[i], sdler[i]);

                brp.Add(b);
            }

            return brp;


        }

        public static kararraporlari chehcksogru(string sorgu, string sd)
        {



            SqlConnection con = connection.baglanti;
            SqlCommand cmd = new SqlCommand("select COUNT(*) as miktar from karar where        " + sorgu + " =1 ", con);
            con.Open();
            SqlDataReader sdr = cmd.ExecuteReader();
            kararraporlari b = new kararraporlari();
            while (sdr.Read())
            {

                b.uniq = Convert.ToDecimal(sdr["miktar"]);
                b.yuzde = ((b.uniq / b.toplam_karar) * 100);
                b.baslik = sd;




            }
            con.Close();

            return b;

        }
	}
}
